<?php
/**
 * LoginService
 *
 * Servico de login na aplicacao
 *
 */
class LoginService extends Model {

    /**
     * @var AcaoChamadoService
     */
    private $acaoChamadoService;
    /**
     * @var AcaoService
     */
    private $acaoService;
    /**
     * @var MenuService
     */
    private $menuService;

    public function injectDependencies() {
        $this->acaoChamadoService = AcaoChamadoService::getInstance();
        $this->acaoService = AcaoService::getInstance();
        $this->menuService = MenuService::getInstance();
    }

    /**
     * @method  logar
     *
     * Metodo que realiza o login de um usuario no dracosys
     *
     * @param array $ArDados    Array com Usuario e Senha digitados pelo visitante
     *
     * @author  Richard Brandao <richardsbrandao@gmail.com>
     * @return  boolean
     * @since   2011-09-13
     */
    public function logar($ArDados) {
        Session::init();
        $BoRetorno = false;
        $tMysqli = MyDb::getInstance();
        $tMysqli->getConnection(MYSQL_HOST, MYSQL_USER,MYSQL_PASS, MYSQL_DB);
        $tMysqli->escape($ArDados);
        $StSql = TQuery::getSqlLogar($ArDados['StNome'], $ArDados['StSenha']);
        $tMysqli->exec($StSql);
        if( $tMysqli->numRows() == 1 ) {
            $IDUsuario = $tMysqli->result(0, 'IDUsuario');
            $Usuario = new Usuario($IDUsuario, $tMysqli);
            Dracosys::saveSessionValue(SESSION_SYSTEM, 'Usuario', $Usuario);
            Dracosys::saveSessionValue(SESSION_SYSTEM, 'CalledActions', $this->acaoChamadoService->findAll());
            Dracosys::saveSessionValue(SESSION_SYSTEM, 'FreeActions', $this->acaoService->findFreeActions());
            Dracosys::saveSessionValue(SESSION_SYSTEM, 'MainMenu', $this->menuService->buildMenuFromLoggedUser($Usuario->getTPerfil()->getIDPerfil()));
            $BoRetorno = true;
        }
        $tMysqli->close();
        return $BoRetorno;
    }

}

?>
